Git branch 전략

❓질문

알고 계신 git 브랜치 전략들에 대해 소개해주세요.


💡 조사하기전 내가 알고 있던 내용

깃 브랜치 전략이란 협업을 하는데 있어 깃을 사용하여 브랜치를 나누고 서로 자신의 영역?을 만들어 작업을 한뒤 하나의 브랜치로 병합하여 작업을 한다 이는 각 브랜치가 어떠한 기능을 개발을 하였는지
그리고 롤백 , 수정등 개념에서 효과적으로 먹히니 브랜치를 나누어 작업을 하는데 이때 어떻게 브랜치를 나눌지 규칙을 정하는걸 깃 브랜치 전략이라고 한다.

일단 내가 알고있는 깃 브랜치 전략은 Git flowGithub flow를 예로 들수 있다.

먼저 Git flow는 배포직전 핵심 main 브랜치 , 개발단계의 develop 브랜치 , 기능개발의 feature 브랜치 , 릴리스를 준비하고 QA단계를 거치는 release 브랜치 , 긴급 수정사항의 hotfix 브랜치등 많은 브랜치들이 존재해 브랜치의 복잡도는 높지만 개발의 안정성을 높히는 방향의 전략이라고 이야기 할 수 있다.

반면 Github flow는 위 브랜치중 main, develop , feature만 사용하는등 축소화된 전략을 사용한다 이 전략으로 복잡도를 줄이고 개발의 속도를 높힐순 있지만 검증의 과정을 거치는 브랜치들이 없기 때문에 안정성을 위보다 상대적으로 떨어질 수 있다.


🏫 정리한 내용

Git Flow는 릴리스 주기가 길고 QA가 중요한 프로젝트에서 사용하기 적합합니다. 예를 들어, 금융 서비스처럼 안정성과 품질이 중요한 프로젝트에서는 Git Flow가 더 적합할 것입니다. 반면, GitHub Flow는 자주 배포가 이루어지고 변경 사항을 빠르게 반영해야 하는 스타트업과 유사한 환경에서 유리할 것입니다.